Jak dostat vysledek do Query1

Otázka od: Jiří Semler

30. 9. 2002 18:42

Dobry den,

potebuji dostat do tabulky hodotu z if v tomto selectu:

select cena,dph,cena+dph as cenasdph, if(cena>=0,'Prijem',Vydej') as
Pohyb from Faktura.
Existeje v BDE nejaka funkce nebo jiny zpusob jak ten vyseldek if...
dostat do tabulky? Nechci pouzit CalcField, protoze tento by se dotaz
mel generovat pomoci paametru - nejde jenom o ceny, ale i dalsi pole.
Dekuji Jirka

Odpovedá: Martin Cajbik

1. 10. 2002 16:59

Neviem o aky SQL server je to oprete, ale na MSSQL sa na taketo veci pouziva
CASE

SELECT cena,dph,cena+dph AS cenasdph,
  CASE
    WHEN cena >=0 THEN 'Prijem'
    ELSE 'Vydej'
  END AS Pohyb
FROM Faktura

druha moznost (nie prilis flexibilna) je pouzit UNION

SELECT cena,dph,cena+dph as cenasdph, 'Prijem' AS Pohyb
FROM Faktura
WHERE cena >= 0
UNION
SELECT cena,dph,cena+dph as cenasdph, 'Vydej' AS Pohyb
FROM Faktura
WHERE cena < 0




> Dobry den,
>
> potebuji dostat do tabulky hodotu z if v tomto selectu:
>
> select cena,dph,cena+dph as cenasdph, if(cena>=0,'Prijem',Vydej') as
> Pohyb from Faktura.
>
> Existeje v BDE nejaka funkce nebo jiny zpusob jak ten vyseldek if...
> dostat do tabulky? Nechci pouzit CalcField, protoze tento by se dotaz
> mel generovat pomoci paametru - nejde jenom o ceny, ale i dalsi pole.
>
> Dekuji Jirka
>
>
>

Odpovedá: Jan Sebelík

1. 10. 2002 14:38

> Odesílatel: Jiří Semler <jsemler@stbk.mcs.cz>
> potebuji dostat do tabulky hodotu z if v tomto selectu:
> select cena,dph,cena+dph as cenasdph, if(cena>=0,'Prijem',Vydej') as
> Pohyb from Faktura.
To nejde.
Budto si na to napis ulozenou proceduru, nebo musis mit CalcField.
Anebo by se to jeste dalo resit OnGetText na polozce cena.
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Odpovedá: Macko Martin

1. 10. 2002 17:54

MSSQL:

SELECT OC,
       ZAKL_MZDA,
       CASE WHEN ZAKL_MZDA<10000 THEN 'Malo' ELSE 'Dost' END
FROM PERSON


-----Original Message-----
From: Jiří Semler [mailto:jsemler@stbk.mcs.cz]

Dobry den,

potebuji dostat do tabulky hodotu z if v tomto selectu:

select cena,dph,cena+dph as cenasdph, if(cena>=0,'Prijem',Vydej') as Pohyb from Faktura.
Existeje v BDE nejaka funkce nebo jiny zpusob jak ten vyseldek if... dostat do tabulky? Nechci pouzit CalcField, protoze tento by se dotaz mel generovat pomoci paametru - nejde jenom o ceny, ale i dalsi pole.
Dekuji Jirka

Odpovedá: Ben, Martin (CAP, GCF)

1. 10. 2002 17:52

Napises o jakou jde databazi, ale v Oracle bych to resil takto

select castka, decode(sign(castka),-1,'Výdej',1,'Příjem','Nic') from platby

Martin Ben


> -----Original Message-----
> From: Jiri Semler [mailto:jsemler@stbk.mcs.cz]
>
> potebuji dostat do tabulky hodotu z if v tomto selectu:
>
> select cena,dph,cena+dph as cenasdph, if(cena>=0,'Prijem',Vydej') as
> Pohyb from Faktura.
>
> Existeje v BDE nejaka funkce nebo jiny zpusob jak ten vyseldek if...
> dostat do tabulky? Nechci pouzit CalcField, protoze tento by se dotaz
> mel generovat pomoci paametru - nejde jenom o ceny, ale i dalsi pole.